﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO_MechSysWeb;
using System.Data.SqlClient;

namespace DAL_MechSysWeb
{
    public class DALUnidadeFederal : DALBase
    {
        private DTOUnidadeFederal CriarEstado(SqlDataReader sqlDataReader)
        {
            try
            {
                DTOUnidadeFederal dtoUnidadeFederal = new DTOUnidadeFederal();

                if (!string.IsNullOrEmpty(sqlDataReader["UFID"].ToString()))
                {
                    dtoUnidadeFederal.UFID = (int)sqlDataReader["UFID"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Nome"].ToString()))
                {
                    dtoUnidadeFederal.Nome = (string)sqlDataReader["Nome"];
                }

                if (!string.IsNullOrEmpty(sqlDataReader["Sigla"].ToString()))
                {
                    dtoUnidadeFederal.Sigla = (string)sqlDataReader["Sigla"];
                }

                return dtoUnidadeFederal;
            }
            catch (Exception)
            {
                throw;
            }
        }

        public List<DTOUnidadeFederal> BuscarEstadosCadastrados()
        {
            List<DTOUnidadeFederal> lstEstados = new List<DTOUnidadeFederal>();

            try
            {
                string storedProssidere = "sp_BuscarEstadosCadastrados";
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere))
                {
                    while (sqlDataReader.Read())
                    {

                        DTOUnidadeFederal dtoUnidadeFederal = CriarEstado(sqlDataReader);

                        lstEstados.Add(dtoUnidadeFederal);

                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }
            return lstEstados;
        }

        public DTOUnidadeFederal BuscarEstadosPorUFID(int ufid)
        {
            DTOUnidadeFederal dtoUnidadeFederal = null;

            try
            {
                string storedProssidere = "sp_BuscarEstadosPorUFID";
                SqlParameter[] parameters =
                        {                    
                           new SqlParameter("@ufid", ufid)                                    
                        };
                using (SqlDataReader sqlDataReader = ExecuteReader(storedProssidere, parameters))
                {
                    if (sqlDataReader.Read())
                    {

                        dtoUnidadeFederal = CriarEstado(sqlDataReader);

                    }
                }
            }
            catch (SqlException)
            {
                throw;
            }

            return dtoUnidadeFederal;
        }
    }
}
